// pages/OrderCreate/OrderCreate.js
import { get, post } from "../../utils/request";
import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast';
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    info: null, //地址信息
    cartList: [], //已经选中的购物车商品
    totalPrice: 0, //总价格
    note: '', //备注信息
  },
  //备注信息
  setNote(e) {
    this.setData({
      note: e.detail
    })
  },
  //提交订单
  onSubmit() {
    const id = app.globalData.cartId
    
    const info = { //保存提交订单信息
      cartId: 0,
      addressId: this.data.info.id,
      couponId: 0,
      userCouponId: 0,
      message: this.data.note,
      grouponRulesId: 0,
      grouponLinkId: 0,
    }
    if(id) {
      info.cartId = id
    }
    post({ //发送提交订单请求
      url: '/order/submit',
      data:info
    }).then(({data}) => {
      if(data.errno === 0) { //如果成功 
        Toast.loading({
          message: '生成订单中...',
          forbidClick: true,
          duration: 800
        });

        setTimeout(() => { //提醒用户是否现在支付
          Dialog.confirm({
            title: '是否现在支付',
            
          })
            .then(() => { //如果点击支付就请求支付订单
              // on confirm
              post({
                url: '/order/pay',
                data: {
                  orderId: data.data.orderId
                }
              }).then(({data}) => {
                if(data.errno === 0) {
                  Toast.success('付款成功!');
                  app.globalData.storageId = 0 //初始化立即购买时缓存的信息
                  app.globalData.cartId = 0
                  app.globalData.number = 0
                  setTimeout(() => {
                    wx.switchTab({ //返回购物车界面
                      url: '/pages/Cart/Cart'
                    })
                  },1000)
                }
              })
            }) //如果不支付就直接回到购物车界面
            .catch(() => {
             
              wx.switchTab({
                url: '/pages/Cart/Cart'
              })
            });
        },1000)
      }
    })
  },
  //选择地址
  selectArea() {
    // console.log('你好');
    wx.navigateTo({
      url: '../Contact/Contact',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if(app.globalData.areaInfo) {
      this.setData({
        info: app.globalData.areaInfo
      })
    }else {
      get({
        url: "/address/list",
      }).then(({ data: { data } }) => {
        if (data) {
          for (let i of data.list) {
            if(i.isDefault) {
              this.setData({
                info: i
              })
            }
          }
        }
      });
    }
    if(app.globalData.cartId) { //如果cartId存在说明是立即购买状态
      get({
        url: 'goods/detail',
        data: {
          id: app.globalData.storageId //把全局对象保存缓存商品id拿下来请求商品数据
        }
      }).then(res => {
        const info = res.data.data.info //抽离商品信息对象
        info.price = info.retailPrice //设置价格
        info.goodsName = info.name //设置商品名称
        info.number = app.globalData.number //设置商品数量从全局对象里面拿取
        this.data.cartList.push(info) //放进商品数组
        let totalPrice = info.number * info.price //计算总价格
        this.setData({
          cartList: this.data.cartList,
          totalPrice
        })

      })
      
    }else { //如果全局缓存对象为0表明是购物车操作
      get({  //获取购物车数组
        url: '/cart/index'
      }).then(({data:{data}}) => {
        const arr = [] //创建空数组用来赋值
        let total = 0 //总价格初始化
        for(let i of data.cartList) { //遍历
          if(i.checked) { //选中的放进购物车数组并且计算总价格
            arr.push(i)
            total += i.number * i.price
          }
        }
        this.setData({
          cartList: arr,
          totalPrice: total
        })
      })
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
});
